在Flask
框架中有一个redirect
函数,用于实现页面的跳转,现在我们来实现它。原理就是:当浏览器接受到服务器响应的状态码是301
或者302
时,表示请求的页面已经永久或临时性转移到了新的位置,而这个新的位置储存在响应的header
里Locaiton
这个字段。例如一个实现跳转的响应如下:
HTTP/1.1 302 OK
Content-Type: text/html
Location: /login
这是一个很简单的http
响应,状态码302
表示原先请求的网页临时性转移到了/login
('OK'
这个没有影响,可以改成任意东西,如'JUMP'
),很明显这就是用户请求的页面是需要登录才能查看的。因此redirect
函数可以这样写:
def redirect(path):
header = 'HTTP/1.1 302 JUMP\r\nContent-Type: text/html\r\n'
location = 'Location: {}'.format(path)
response = header + location
return response.encode('utf-8')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。